import java.util.Arrays;

/**
 * @author tongchen
 * @create 2023-02-04 20:25
 */
public class ShellSort {
    public static void shellSort(int[]arr){
        //外层循环将插入排序分组进行
        for(int i= arr.length/2;i>0;i/=2){
            //内层循环相当于处理每次的插入排序
            for(int j=i;j< arr.length;++j){
                int index=j-i;
                //创建中间值用于存储
                int temp=arr[j];
                while(index>=0&&temp<arr[index]){
                    arr[index+i]=arr[index];
                    index-=i;
                }
                arr[index+i]=temp;
            }
        }
    }

    public static void main(String[] args) {
        int[]arr={7,6,8,8,3,1,2};
        shellSort(arr);
        System.out.println(Arrays.toString(arr));
    }
}
